<!DOCTYPE html>
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
  <meta name="description" content="刘清政">
  <meta name="keyword" content="hexo-theme">
  
    <link rel="shortcut icon" href="/css/images/logo.png">
  
  <title>
    
      Justin-刘清政的博客
    
  </title>
  <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
  <link href="//cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.css" rel="stylesheet">
  <link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/tomorrow.min.css" rel="stylesheet">
  
<link rel="stylesheet" href="/css/style.css">

  
    
<link rel="stylesheet" href="/css/plugins/gitment.css">

  
  <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/geopattern/1.2.3/js/geopattern.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.js"></script>
  
    
<script src="/js/qrious.js"></script>

  
  
    
<script src="/js/gitment.js"></script>

  
  

  
<meta name="generator" content="Hexo 4.2.0"></head>
<div class="wechat-share">
  <img src="/css/images/logo.png" />
</div>

  <body>
    <header class="header fixed-header">
  <div class="header-container">
    <a class="home-link" href="/">
      <div class="logo"></div>
      <span>Justin-刘清政的博客</span>
    </a>
    <ul class="right-list">
      
        <li class="list-item">
          
            <a href="/" class="item-link active">主页</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/tags/" class="item-link">标签</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/archives/" class="item-link">归档</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/about/" class="item-link">关于我</a>
          
        </li>
      
    </ul>
    <div class="menu">
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
    </div>
    <div class="menu-mask">
      <ul class="menu-list">
        
          <li class="menu-item">
            
              <a href="/" class="menu-link mobile-active">主页</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/tags/" class="menu-link">标签</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/archives/" class="menu-link">归档</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/about/" class="menu-link">关于我</a>
            
          </li>
        
      </ul>
    </div>
  </div>
</header>

    <main class="app-body">
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/linux/%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/06-Linux%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86/">linux/入门到精通/06-Linux用户管理</a>
      </h2>
      <p class="article-date">2020年7月6日</p>
      
      <div class="article-summary">
        
          1.用户基本概述1.什么是用户?用户指的是能够正常登录Linux或Windows系统(可以理解为你租了房子，能够正常入驻)F:那Linux与Windows系统的用户有什么区别? Q:本质都是登陆系统，只不过Linux支持多个用户同时登陆。F:难道Windows就不算多用户操作系统吗? Q:其 ...
        
      </div>
      <a class="more" href="/linux/%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/06-Linux%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/linux/%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/05-Linux%E6%96%87%E4%BB%B6%E7%BC%96%E8%BE%91/">linux/入门到精通/05-Linux文件编辑</a>
      </h2>
      <p class="article-date">2020年7月6日</p>
      
      <div class="article-summary">
        
          1.VIM基本概述1.什么是VIM?vi和vim是Linux下的一个文本编辑工具。(可以理解为windows的记事本，或word文档)
2.为什么要使用VIM?因为Linux系统一切皆为文件，而我们工作最多的就是修改某个服务的配置(其实就是修改文件内容)。也就是说如果没有vi/vim，我们很 ...
        
      </div>
      <a class="more" href="/linux/%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/05-Linux%E6%96%87%E4%BB%B6%E7%BC%96%E8%BE%91/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/linux/%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/04-Linux%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86/">linux/入门到精通/04-Linux文件管理</a>
      </h2>
      <p class="article-date">2020年7月6日</p>
      
      <div class="article-summary">
        
          1.文件管理概述1.Bash Shell对文件进行管理谈到Linux文件管理，首先我们需要了解的就是，我们要对文件做些什么事情？其实无非就是对一个文件进行、创建、复制、移动、查看、编辑、压缩、查找、删除、等等例如 : 当我们想修改系统的主机名称，是否应该知道文件在哪，才能去做对应的修改？
2 ...
        
      </div>
      <a class="more" href="/linux/%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/04-Linux%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/linux/%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/03-Linux-Shell/">linux/入门到精通/03-Linux-Shell</a>
      </h2>
      <p class="article-date">2020年7月6日</p>
      
      <div class="article-summary">
        
          1.什么是Bash shell(壳)Bash Shell是一个命令解释器，它在操作系统的最外层，负责用户程序与内核进行交互操作的一种接口，将用户输入的命令翻译给操作系统，并将处理后的结果输出至屏幕。
通过xshell连接，就是打开了一个bash程序的窗口，不能点鼠标，只能输入命令
当我们使用 ...
        
      </div>
      <a class="more" href="/linux/%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/03-Linux-Shell/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/7-drf-%E8%BF%87%E6%BB%A4%E6%8E%92%E5%BA%8F%E5%88%86%E9%A1%B5%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86/">python/Django-rest-framework框架/7-drf-过滤排序分页异常处理</a>
      </h2>
      <p class="article-date">2020年6月28日</p>
      
      <div class="article-summary">
        
          一 过滤Filtering对于列表数据可能需要根据字段进行过滤，我们可以通过添加django-fitlter扩展来增强支持。
1pip install django-filter

在配置文件中增加过滤后端的设置：
123456789INSTALLED_APPS = [    ...     ...
        
      </div>
      <a class="more" href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/7-drf-%E8%BF%87%E6%BB%A4%E6%8E%92%E5%BA%8F%E5%88%86%E9%A1%B5%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/9-drf-JWT%E8%AE%A4%E8%AF%81/">python/Django-rest-framework框架/9-drf-JWT认证</a>
      </h2>
      <p class="article-date">2020年6月28日</p>
      
      <div class="article-summary">
        
          一 JWT认证在用户注册或登录后，我们想记录用户的登录状态，或者为用户创建身份认证的凭证。我们不再使用Session认证机制，而使用Json Web Token（本质就是token）认证机制。
1Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSO ...
        
      </div>
      <a class="more" href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/9-drf-JWT%E8%AE%A4%E8%AF%81/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/6-drf-%E8%AE%A4%E8%AF%81%E6%9D%83%E9%99%90%E9%A2%91%E7%8E%87/">python/Django-rest-framework框架/6-drf-认证权限频率</a>
      </h2>
      <p class="article-date">2020年6月28日</p>
      
      <div class="article-summary">
        
          为了方便接下来的学习，我们创建一个新的子应用 opt
1python manage.py startapp opt



因为接下来的功能中需要使用到登陆功能，所以我们使用django内置admin站点并创建一个管理员.
123python3 manage.py makemigrations ...
        
      </div>
      <a class="more" href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/6-drf-%E8%AE%A4%E8%AF%81%E6%9D%83%E9%99%90%E9%A2%91%E7%8E%87/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/10-drf-Xadmin%E7%9A%84%E4%BD%BF%E7%94%A8/">python/Django-rest-framework框架/10-drf-Xadmin的使用</a>
      </h2>
      <p class="article-date">2020年6月28日</p>
      
      <div class="article-summary">
        
          一 Xadmin的使用xadmin是Django的第三方扩展，可是使Django的admin站点使用更方便。
文档：https://xadmin.readthedocs.io/en/latest/index.html
1.1 安装通过如下命令安装xadmin的最新版
1pip install ...
        
      </div>
      <a class="more" href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/10-drf-Xadmin%E7%9A%84%E4%BD%BF%E7%94%A8/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/8-drf-%E8%87%AA%E5%8A%A8%E7%94%9F%E6%88%90%E6%8E%A5%E5%8F%A3%E6%96%87%E6%A1%A3/">python/Django-rest-framework框架/8-drf-自动生成接口文档</a>
      </h2>
      <p class="article-date">2020年6月28日</p>
      
      <div class="article-summary">
        
          一 自动生成接口文档REST framework可以自动帮助我们生成接口文档。
接口文档以网页的方式呈现。
自动接口文档能生成的是继承自APIView及其子类的视图。
1.1. 安装依赖REST framewrok生成接口文档需要coreapi库的支持。
1pip install corea ...
        
      </div>
      <a class="more" href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/8-drf-%E8%87%AA%E5%8A%A8%E7%94%9F%E6%88%90%E6%8E%A5%E5%8F%A3%E6%96%87%E6%A1%A3/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/2-drf-%E5%BA%8F%E5%88%97%E5%8C%96%E7%BB%84%E4%BB%B6/">python/Django-rest-framework框架/2-drf-序列化组件</a>
      </h2>
      <p class="article-date">2020年6月28日</p>
      
      <div class="article-summary">
        
          一 序列化器-Serializer作用：
1. 序列化,序列化器会把模型对象转换成字典,经过response以后变成json字符串
2. 反序列化,把客户端发送过来的数据,经过request以后变成字典,序列化器可以把字典转成模型
3. 反序列化,完成数据校验功能1.1 定义序列化器Djan ...
        
      </div>
      <a class="more" href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/2-drf-%E5%BA%8F%E5%88%97%E5%8C%96%E7%BB%84%E4%BB%B6/">详情...</a>
    </article>
  

  
    <div class="guide-pager">
  
    <a href="/page/18/"><span class="page-arrow">← </span>Prev</a>
  
  
    <a href="/page/20/">Next<span class="page-arrow"> →</span></a>
  
</div>
  
</main>


    <div class="scroll-top">
  <span class="arrow-icon"></span>
</div>
    <footer class="app-footer">
<!-- 不蒜子统计 -->
<span id="busuanzi_container_site_pv">
     本站总访问量<span id="busuanzi_value_site_pv"></span>次
</span>
<span class="post-meta-divider">|</span>
<span id="busuanzi_container_site_uv" style='display:none'>
     本站访客数<span id="busuanzi_value_site_uv"></span>人
</span>
<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>



  <p class="copyright">
    &copy; 2021 | Proudly powered by <a href="https://www.cnblogs.com/xiaoyuanqujing" target="_blank">小猿取经</a>
    <br>
    Theme by <a href="https://www.cnblogs.com/xiaoyuanqujing" target="_blank" rel="noopener">小猿取经</a>
  </p>
</footer>

<script>
  function async(u, c) {
    var d = document, t = 'script',
      o = d.createElement(t),
      s = d.getElementsByTagName(t)[0];
    o.src = u;
    if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); }
    s.parentNode.insertBefore(o, s);
  }
</script>
<script>
  async("//cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.6/fastclick.min.js", function(){
    FastClick.attach(document.body);
  })
</script>

<script>
  var hasLine = 'true';
  async("//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js", function(){
    $('figure pre').each(function(i, block) {
      var figure = $(this).parents('figure');
      if (hasLine === 'false') {
        figure.find('.gutter').hide();
      }
      var lang = figure.attr('class').split(' ')[1] || 'code';
      var codeHtml = $(this).html();
      var codeTag = document.createElement('code');
      codeTag.className = lang;
      codeTag.innerHTML = codeHtml;
      $(this).attr('class', '').empty().html(codeTag);
      figure.attr('data-lang', lang.toUpperCase());
      hljs.highlightBlock(block);
    });
  })
</script>





<!-- Baidu Tongji -->

<script>
    var _baId = 'c5fd96eee1193585be191f318c3fa725';
    // Originial
    var _hmt = _hmt || [];
    (function() {
      var hm = document.createElement("script");
      hm.src = "//hm.baidu.com/hm.js?" + _baId;
      var s = document.getElementsByTagName("script")[0];
      s.parentNode.insertBefore(hm, s);
    })();
</script>


<script src="/js/script.js"></script>


<script src="/js/search.js"></script>


<script src="/js/load.js"></script>



  <span class="local-search local-search-google local-search-plugin" style="right: 50px;top: 70px;;position:absolute;z-index:2;">
      <input type="search" placeholder="站内搜索" id="local-search-input" class="local-search-input-cls" style="">
      <div id="local-search-result" class="local-search-result-cls"></div>
  </span>


  </body>
</html>